-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump to xamarin/Java.Interop/master@fdc200cc #5468
Conversation
Fixes: dotnet/java-interop#767 Changes: dotnet/java-interop@7574f16...fdc200c * dotnet/java-interop@fdc200cc: [Xamarin.Android.Tools.Bytecode] Relax _ApiXml check (dotnet#772) * dotnet/java-interop@f1b93653: [generator] Change generated code to not emit CA1305 warning. (dotnet#771) * dotnet/java-interop@2244407d: [generator] Ensure DIM from assembly refs are correctly marked (dotnet#770) * dotnet/java-interop@da73d6a5: [Java.Interop] Prevent premature collection w/ JniInstance* (dotnet#768) Commit a7413a2 added support for invoking `java-source-utils.jar` on `@(JavaSourceJar)` to extract Javadoc comments and translate them into C# XML Documentation Comments. What this can *also* do is provide correct parameter names. As of commit a7413a2, the `BindingBuildTest.JavaSourceJar()` integration test would emit the warning: obj/Debug/generated/src/Com.Xamarin.Android.Test.Msbuildtest.JavaSourceJarTest.cs(75,20): warning CS1572: XML comment has a param tag for 'name', but there is no parameter by that name Commit dotnet/java-interop@fdc200cc allows `java-source-utils.jar` output to be used with `class-parse`, allowing `@(_JavaSourceJavadocXml)` files -- the output of `java-source-utils.jar` -- to be included in `@(_AndroidDocumentationPath)`. This allows `@(JavaSourceJar)` files to provide parameter names within bindings, removing the CS1572 warning, and making for better overall bindings.
a0ea50d
to
01fcfed
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks ok. I think we need some release notes though. Will this impact users like it did our test? i.e will they need to update code to get around build errors?
This shouldn't actually impact anybody. (Rephrased; it fixes a regression!) The whole point to Before JDK 11 support, before 380e95e, this was done in the The problem is that JDK 11 changed the HTML output format, breaking our parsing, so to "move forward" we disabled …except we didn't just disable under JDK 11; we disabled everywhere: https://github.com/xamarin/xamarin-android/blob/380e95e340168f68b1ae3eb43e0a71b05bc6d80b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Documentation.targets#L19-L21 ^^ always evaluates to So before JDK 11 support, we'd attempt to process Thus, in migrating away from (…and probably nobody noticed because only 36 people on GitHub use it.) |
Fixes: dotnet/java-interop#767
Changes: dotnet/java-interop@7574f16...fdc200c
Commit a7413a2 added support for invoking
java-source-utils.jar
on
@(JavaSourceJar)
to extract Javadoc comments and translate theminto C# XML Documentation Comments.
What this can also do is provide correct parameter names.
As of commit a7413a2, the
BindingBuildTest.JavaSourceJar()
integration test would emit the warning:
Commit dotnet/java-interop@fdc200cc allows
java-source-utils.jar
output to be used with
class-parse
, allowing@(_JavaSourceJavadocXml)
files -- the output ofjava-source-utils.jar
-- to be included in@(_AndroidDocumentationPath)
.This allows
@(JavaSourceJar)
files to provide parameter nameswithin bindings, removing the CS1572 warning, and making for
better overall bindings.
We can see the benefits of this change in
tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs
,which required changes because the parameter names in the Java
DataListener.onDataReceived()
method could now be determined;previously they couldn't, resulting in the
P0
/P1
/etc. names.With the provision of
@(JavaSourceJar)
-- a7413a2 updatedXamarin.Android.McwGen-Tests.csproj
to have@(JavaSourceJar)
--the parameter names can now be determined, improving the binding.